package org.byqh.dqeai.entity.proxy;

import com.easy.query.core.expression.parser.core.available.TableAvailable;
import com.easy.query.core.proxy.AbstractProxyEntity;
import com.easy.query.core.proxy.SQLColumn;
import com.easy.query.core.proxy.SQLSelectAsExpression;
import com.easy.query.core.proxy.fetcher.AbstractFetcher;
import com.easy.query.core.proxy.core.EntitySQLContext;
import org.byqh.dqeai.entity.PkAppRuntimeCategory;
import com.easy.query.core.proxy.columns.types.SQLStringTypeColumn;
import com.easy.query.core.proxy.columns.types.SQLIntegerTypeColumn;

/**
 * this file automatically generated by easy-query, don't modify it
 * 当前文件是easy-query自动生成的请不要随意修改
 * 如果出现属性冲突请使用@ProxyProperty进行重命名
 *
 * @author easy-query
 */
public class PkAppRuntimeCategoryProxy extends AbstractProxyEntity<PkAppRuntimeCategoryProxy, PkAppRuntimeCategory> {

    private static final Class<PkAppRuntimeCategory> entityClass = PkAppRuntimeCategory.class;

    public static final PkAppRuntimeCategoryProxy TABLE = createTable().createEmpty();

    public static PkAppRuntimeCategoryProxy createTable() {
        return new PkAppRuntimeCategoryProxy();
    }

    public PkAppRuntimeCategoryProxy() {
    }

    /**
     * {@link PkAppRuntimeCategory#getCategoryCode}
     */
    public SQLStringTypeColumn<PkAppRuntimeCategoryProxy> categoryCode() {
        return getStringTypeColumn("categoryCode");
    }

    /**
     * {@link PkAppRuntimeCategory#getCategoryName}
     */
    public SQLStringTypeColumn<PkAppRuntimeCategoryProxy> categoryName() {
        return getStringTypeColumn("categoryName");
    }

    /**
     * {@link PkAppRuntimeCategory#getCategorySeq}
     */
    public SQLIntegerTypeColumn<PkAppRuntimeCategoryProxy> categorySeq() {
        return getIntegerTypeColumn("categorySeq");
    }

    @Override
    public Class<PkAppRuntimeCategory> getEntityClass() {
        return entityClass;
    }

    /**
     * 数据库列的简单获取
     *
     * @return
     */
    public PkAppRuntimeCategoryProxyFetcher FETCHER = new PkAppRuntimeCategoryProxyFetcher(this, null, SQLSelectAsExpression.empty);

    public static class PkAppRuntimeCategoryProxyFetcher extends AbstractFetcher<PkAppRuntimeCategoryProxy, PkAppRuntimeCategory, PkAppRuntimeCategoryProxyFetcher> {

        public PkAppRuntimeCategoryProxyFetcher(PkAppRuntimeCategoryProxy proxy, PkAppRuntimeCategoryProxyFetcher prev, SQLSelectAsExpression sqlSelectAsExpression) {
            super(proxy, prev, sqlSelectAsExpression);
        }

        /**
         * {@link PkAppRuntimeCategory#getCategoryCode}
         */
        public PkAppRuntimeCategoryProxyFetcher categoryCode() {
            return add(getProxy().categoryCode());
        }

        /**
         * {@link PkAppRuntimeCategory#getCategoryName}
         */
        public PkAppRuntimeCategoryProxyFetcher categoryName() {
            return add(getProxy().categoryName());
        }

        /**
         * {@link PkAppRuntimeCategory#getCategorySeq}
         */
        public PkAppRuntimeCategoryProxyFetcher categorySeq() {
            return add(getProxy().categorySeq());
        }

        @Override
        protected PkAppRuntimeCategoryProxyFetcher createFetcher(PkAppRuntimeCategoryProxy cp, AbstractFetcher<PkAppRuntimeCategoryProxy, PkAppRuntimeCategory, PkAppRuntimeCategoryProxyFetcher> prev, SQLSelectAsExpression sqlSelectExpression) {
            return new PkAppRuntimeCategoryProxyFetcher(cp, this, sqlSelectExpression);
        }
    }
}
